/**
 * 
 * @param {string} url 请求地址 
 * @param {object} params 请求参数
 * @param {string|undefined} type 数据类型
 * @param {object} headers 自定义请求头
 * @returns 
 */
function get(url, params, type = null, headers = {}) {
  const p = new Promise((resolve, reject) => {
    const xhr = new XMLHttpRequest();
    xhr.onreadystatechange = () => {
      if (xhr.readyState === 4) {
        if (xhr.status === 200) {
          let res = xhr.responseText;
          if ((type = "json")) res = JSON.parse(res);
          resolve(res);
        } else {
          reject(xhr.status);
        }
      }
    };
    let temp = [];
    for (let key in params) {
      temp.push(`${key}=${params[key]}`);
    }
    xhr.open("get", `${url}?${temp.join("&")}`);
    for (let key in headers) {
      xhr.setRequestHeader(key, headers[key]);
    }
    xhr.send(null);
  });
  return p;
}
//---------------------------------------------------分割线--------------------------------------------
function post(url, params, type = null, headers = {}) {
    const p = new Promise((resolve, reject) => {
      const xhr = new XMLHttpRequest();
      xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
          if (xhr.status === 200) {
            let res = xhr.responseText;
            if ((type = "json")) res = JSON.parse(res);
            resolve(res);
          } else {
            reject(xhr.status);
          }
        }
      };
      let temp = [];
      for (let key in params) {
        temp.push(`${key}=${params[key]}`);
      }
      xhr.open("get", url);
      xhr.setRequestHeader('content-type','application/x-www-form-urlencoded')
      for (let key in headers) {
        xhr.setRequestHeader(key, headers[key]);
      }
      xhr.send(temp.join("&"));
    });
    return p;
  }